# 步骤：
# 包含头文件 include_directories（必须）
# 定义源文件列表 aux_source_directory（可选）
# 定义源文件add_executable(executable_name source1.cpp source2.cpp)（例子）
# 定义库文件 add_library（可选）
# 定义可执行文件 add_executable（必须）
# 链接库 target_link_libraries（必须）

# cmake版本最低要求
cmake_minimum_required(VERSION 3.8)

# 工程名，会产生"${PROJECT_NAME}"变量
project(OpenCV_Test)

# set用来定义变量，变量使用时用"${变量名}"的形式
set(CMAKE_CXX_STANDARD 11)

# set(CMAKE_EXE_LINKER_FLAGS "-static")
# set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
# set(BUILD_SHARED_LIBS NI)
# set(CMAKE_EXE_LINKER_FLAGS "-static")

# set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
# 用find_package寻找OpenCV，找到后会有"${OpenCV_INCLUDE_DIRS}"，"${OpenCV_LIBRARIES}"两个变量可供使用，第一个是头文件位置，第二个是库文件
# add_library(OpenCV STATIC IMPORTED)
find_package(OpenCV REQUIRED)

# message用来打印信息，这里打印下找到的OpenCV的头文件和库文件的信息，可以不做
message(STATUS "OpenCV Include: ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV Libs: ${OpenCV_LIBRARIES}")

# 找到在当前目录下的所有代码文件，存储到"SOURCE_FILES"变量中
# aux_source_directory(. SOURCE_FILES)
set(SOURCE_FILES main.cpp)

# 打印下刚才的"SOURCE_FILES"，同样可不做
message(STATUS "src: ${SOURCE_FILES}")

# 定义需要include的头文件的位置
include_directories(${OpenCV_INCLUDE_DIRS})

# include_directories(stb-master)
# 添加个可执行的输出，第一个参数是输出名，必须唯一，第二个源文件
add_executable(${PROJECT_NAME} ${SOURCE_FILES})

# 用来链接库，注意这个函数要在"add_executable"之后使用
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBRARIES})